home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-04-11 | 93.9 KB | 1,852 lines |
- Archive-name: scheme-faq/part1
- Last-Modified: Thu Feb 2 16:17:00 1995 by Mark Kantrowitz
- Version: 1.22
- Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>
- URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
- Size: 54100 bytes, 1117 lines
-
- ;;; ****************************************************************
- ;;; Answers to Frequently Asked Questions about Scheme *************
- ;;; ****************************************************************
- ;;; Written by Mark Kantrowitz and Barry Margolin
- ;;; scheme_1.faq
-
- This post contains part 1 of the Scheme FAQ.
-
- If you think of questions that are appropriate for this FAQ, or would
- like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.
-
- Note that the lisp-faq mailing list is for discussion of the content
- of the FAQ posting only. It is not the place to ask questions about Scheme;
- use either the scheme@ai.mit.edu mailing list, the comp.lang.scheme
- newsgroup or the Scheme Digest (scheme@mc.lcs.mit.edu) for that. If a
- question appears frequently in one of those forums, it will get added
- to the FAQ list.
-
- *** Copyright:
-
- Copyright (c) 1993-94 by Mark Kantrowitz and Barry Margolin.
- All rights reserved.
-
- This FAQ may be freely redistributed in its entirety without
- modification provided that this copyright notice is not removed. It
- may not be sold for profit or incorporated in commercial documents
- (e.g., published for sale on CD-ROM, floppy disks, books, magazines,
- or other print form) without the prior written permission of the
- copyright holder. Permission is expressly granted for this document
- to be made available for file transfer from installations offering
- unrestricted anonymous file transfer on the Internet.
-
- If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
- etc.), a complimentary copy should be sent to Mark Kantrowitz, School
- of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
- Pittsburgh, PA 15213-3891 USA.
-
- This article is provided AS IS without any express or implied warranty.
-
- *** Topics Covered:
-
- Topics Covered (Part 1):
- [1-0] What is the purpose of this newsgroup?
- [1-2] What is the difference between Scheme and Common Lisp?
- [1-3] Scheme books, introductions, documentation, periodicals,
- journals, and conference proceedings.
- [1-4] Where can I learn about implementing Scheme interpreters and
- compilers?
- [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
- [1-8] How do I do object-oriented programming in Scheme?
- [1-9] Repositories of Scheme Software
- [1-10] Publicly Redistributable Scheme Software
- [1-11] Formatting code in LaTeX (WEB and other literate programming tools)
- [1-12] Where can I get an implementation of Prolog in Scheme?
- [1-13] What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
- [1-14] Why is there no EVAL in Scheme?
- [1-15] World-Wide Web (WWW) Resources
- [1-16] Why is Scheme called 'Scheme'?
-
- Topics Covered (Part 2):
- [2-1] Free Scheme implementations.
- [2-2] Commercial Scheme implementations.
- [2-3] What Scheme-related discussion groups and mailing lists exist?
-
- Search for \[#\] to get to question number # quickly.
-
- *** Recent Changes:
-
- ;;; 1.19:
- ;;; 20-OCT-94 mk Added FTP location for Scheme84.
- ;;; 3-NOV-94 mk FTP collections on altdorf.ai.mit.edu have moved to
- ;;; swiss-ftp.ai.mit.edu
- ;;; 3-NOV-94 mk Added Christian Queinnec's Lisp book to [1-4].
- ;;;
- ;;; 1.20:
- ;;; 15-NOV-94 mk Updated location of Ken Dickey article.
- ;;;
- ;;; 1.21:
- ;;; 22-NOV-94 mk Scheme Repository at Indiana University WWW page.
- ;;; 7-DEC-94 mk Updated EdScheme entry in [2-2].
- ;;;
- ;;; 1.22:
- ;;; 16-JAN-95 mk Updated Schemers entry.
- ;;; 31-JAN-95 mk Added Manis' book to [1-3].
-
- *** Introduction:
-
- Certain questions and topics come up frequently in the various network
- discussion groups devoted to and related to Scheme. This file/article is
- an attempt to gather these questions and their answers into a convenient
- reference for Scheme programmers. It (or a reference to it) is posted
- periodically. The hope is that this will cut down on the user time and
- network bandwidth used to post, read and respond to the same questions
- over and over, as well as providing education by answering questions
- some readers may not even have thought to ask.
-
- This is not a Scheme tutorial, nor is it an exhaustive list of all Scheme
- intricacies. Scheme is a very powerful and expressive language, but with
- that power comes many complexities. This list attempts to address the
- ones that average Scheme programmers are likely to encounter. If you are
- new to Scheme, see the answer to the question "How can I learn
- Scheme?" [1-3].
-
- The latest version of this file is available via anonymous FTP from CMU:
-
- To obtain the files from CMU, connect by anonymous FTP to
- ftp.cs.cmu.edu:/user/ai/pubs/faqs/scheme/ [128.2.206.173]
- using username "anonymous" and password "name@host" (substitute your
- email address) or via AFS in the Andrew File System directory
- /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/scheme/
- and get the files scheme_1.faq and scheme_2.faq.
-
- You can also obtain a copy of the FAQ by sending a message to
- ai+query@cs.cmu.edu with
- Send Scheme FAQ
- in the message body.
-
- An automatically generated HTML version of the Scheme FAQ is accessible by
- WWW as part of the AI-related FAQs Mosaic page. The URL for this
- resource is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
- The direct URL for the Lisp FAQ is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
-
- We've tried to minimize the overlap with the FAQ postings to the
- comp.lang.lisp, comp.lang.clos and comp.ai newsgroups, so if you don't
- find what you're looking for here, we suggest you try the FAQs for
- those newsgroups. These FAQs should be available by anonymous ftp from
- rtfm.mit.edu:/pub/usenet/news.answers/ [18.181.0.24]
- in the lisp-faq/, ai-faq/ and scheme-faq/ subdirectories or by email.
- For instructions on email retrieval, send a mail message to
- mail-server@rtfm.mit.edu with "help" and "index" on separate lines in
- the body of the message.
-
- If you need to cite the FAQ for some reason, use the following format:
- Mark Kantrowitz and Barry Margolin, "Answers to Frequently Asked
- Questions about Scheme", comp.lang.scheme, <month>, <year>,
- ftp.cs.cmu.edu:/user/ai/pubs/faqs/scheme/scheme_?.faq,
- ai+lisp-faq@cs.cmu.edu.
-
- ----------------------------------------------------------------
- Subject: [1-0] What is the purpose of this newsgroup?
-
- The newsgroup comp.lang.scheme exists for general discussion of
- topics related to the programming language Scheme. For example, possible
- topics can include (but are not necessarily limited to):
- announcements of Scheme books and products
- discussion of programs and utilities written in Scheme
- discussion of portability issues
- questions about possible bugs in Scheme implementations
- problems porting an implementation to some architecture
- Postings should be of general interest to the Scheme community. See also
- question [2-3].
-
- Questions about Common Lisp should be directed to the newsgroup
- comp.lang.lisp. Discussion of object oriented programming in Lisp to
- the newsgroup comp.lang.clos. Discussion of functional programming
- language issues in general should be directed to the newsgroup
- comp.lang.functional. Discussion of AI programs implemented in Scheme
- should sometimes be cross-posted to the newsgroup comp.ai.
-
- ----------------------------------------------------------------
- Subject: [1-2] What is the difference between Scheme and Common Lisp?
-
- Scheme is a dialect of Lisp that stresses conceptual elegance and
- simplicity. It is specified in R4RS and IEEE standard P1178. (See
- question [1-7] for details on standards for Scheme.) Scheme is much
- smaller than Common Lisp; the specification is about 50 pages,
- compared to Common Lisp's 1300 page draft standard. (See the Lisp FAQ
- for details on standards for Common Lisp.) Advocates of Scheme often
- find it amusing that the entire Scheme standard is shorter than the
- index to Guy Steele's "Common Lisp: the Language, 2nd Edition".
-
- Scheme is often used in computer science curricula and programming
- language research, due to its ability to represent many programming
- abstractions with its simple primitives. Common Lisp is often used for
- real world programming because of its large library of utility
- functions, a standard object-oriented programming facility (CLOS), and
- a sophisticated condition handling system.
-
- See question [1-8] for information about object-oriented programming
- in Scheme.
-
- In Common Lisp, a simple program would look something like the
- following:
-
- (defun fact (n)
- (if (< n 2)
- 1
- (* n (fact (1- n)))))
-
- In Scheme, the equivalent program would like like this:
-
- (define fact
- (lambda (n)
- (if (< n 2)
- 1
- (* n (fact (- n 1))))))
-
- Experienced Lisp programmers might write this program as follows in order
- to allow it to run in constant space:
-
- (defun fact (n)
- (labels ((tail-recursive-fact (counter accumulator)
- (if (> counter n)
- accumulator
- (tail-recursive-fact (1+ counter)
- (* counter accumulator)))))
- (tail-recursive-fact 1 1)))
-
- Whereas in Scheme the same computation could be written as follows:
-
- (define fact
- (lambda (n)
- (letrec ((tail-recursive-fact
- (lambda (counter accumulator)
- (if (> counter n)
- accumulator
- (tail-recursive-fact (+ counter 1)
- (* counter accumulator))))))
- (tail-recursive-fact 1 1))))
-
- or perhaps (using IEEE named LETs):
-
- (define fact
- (lambda (n)
- (let loop ((counter n)
- (accumulator 1))
- (if (< counter 2)
- accumulator
- (loop (- counter 1)
- (* accumulator counter))))))
-
- Some Schemes allow one to use the syntax (define (fact n) ...) instead
- of (define fact (lambda (n) ...)).
-
- ----------------------------------------------------------------
- Subject: [1-3] Scheme books, introductions, documentation, periodicals,
- journals, and conference proceedings.
-
- Introductions to Scheme:
-
- The following four books from MIT Press are listed in order of
- increasing difficulty. The first is good for the complete novice,
- the second for students with little or no previous exposure to programming,
- and the third and fourth for more advanced students. The third and
- fourth may also be used to learn a variety of powerful programming
- language concepts. One of these books will suit your needs.
-
- 1. Daniel P. Friedman and M. Felleisen.
- "The Little LISPer"
- MIT Press (Cambridge, MA), 3rd printing, 1989. ISBN 0-262-56038-0.
- Science Research Associates (Chicago), 3rd ed, 1989. 206 pages.
-
- Good for a quick introduction. Uses Scheme instead of Common Lisp.
- (The book uses a dialect of Scheme with footnotes about translating to
- Scheme or Common Lisp. The footnotes won't allow a non-expert to use
- Common Lisp for the advanced chapters because of the complexity.)
-
- 2. Brian Harvey and Matthew Wright
- "Simply Scheme: Introducing Computer Science"
- MIT Press, Cambridge, MA, 1994. 583 pages.
- ISBN 0-262-08226-8. $49.95.
-
- This book is ideal for students with little or no previous exposure to
- programming. The book is designed to be used before SICP (the authors
- call it a SICP "prequel"), and makes Scheme fun by sheltering the
- students from potentially confusing technical details. Unlike Pascal
- or C, the emphasis is on ideas, not obscure matters of syntax and
- arbitrary rules of style. High schools who have shied away from using
- Scheme because they found SICP to be too challenging should consider
- using this book instead.
-
- The text gradually and gently introduces students to some of the key
- concepts of programming in Scheme. It starts off with functions and
- function composition and continues with the notion of functions as
- data (first-class functions) and programs that write programs
- (higher-order functions). Since the complexity of the language is
- hidden, students can get involved in some of the more interesting and
- fun aspects of the language earlier than in other texts. Then the
- book progresses through the more complicated concepts of lambda,
- recursion, data abstraction and procedural abstraction, and concludes
- with sequential techniques, but with careful attention to topics
- students often find difficult. There are five chapters on recursion
- alone! There's also a pitfalls section at the end of most chapters to
- help students recognize and avoid common errors.
-
- The book uses several programs as examples, including a tic-tac-toe
- program, a pattern matcher, a miniature spreadsheet, and a simple
- database program. Source code for the programs is available by
- anonymous ftp from anarres.cs.berkeley.edu:/pub/scheme/, or for $10 on
- IBM or Macintosh diskettes from the publisher.
-
- 3. Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
- "Structure and Interpretation of Computer Programs"
- MIT Press (Cambridge, MA) and McGraw-Hill (New York), 1985.
- 542 pages. ISBN 0-262-01077-1, $55. The teacher's manual, which is
- also available from MIT Press (ISBN 0-262-51046-4 $20), does NOT
- contain solutions to the exercises, but does contain hints on
- teaching with the book.
-
- Starts off introductory, but rapidly gets into powerful
- Lisp-particular constructs, such as using closures,
- building interpreters, compilers and object-oriented systems. Often
- referred to by its acronym, SICP, which is pronounced "Sick-Pee". This
- is the classical text for teaching program design using Scheme,
- and everybody should read it at least once. MIT problem sets are
- available from the repositories, and materials from Gustavus
- Adolphus College are available from ftp.gac.edu:/pub/SICP/.
-
- 4. George Springer and Daniel P. Friedman
- "Scheme and the Art of Programming"
- MIT Press and McGraw Hill, 1990, 596 pages.
- ISBN 0-262-19288-8, $50.
-
- Introduces basic concepts of programming in Scheme. Also deals with
- object oriented programming, co-routining, continuations. Gives
- numerous examples. Has more of an emphasis on teaching Scheme than
- SICP, and can be seen as an alternative to SICP. Source code from the
- chapters is available from
- ftp.cs.indiana.edu:/pub/scheme-repository/doc/lit/sap/
-
- 5. Iain Ferguson, Edward Martin, and Burt Kaufman
- "The Schemer's Guide"
- Schemer's Inc. (see EdScheme entry in [2-2]). 328 pages ($30).
-
- Maintains a very down-to-earth approach. Good for use in
- teaching Scheme to high school students.
-
-
- Older Introductions to Scheme:
-
- 1. Smith, Jerry D.
- "Introduction to Scheme"
- Prentice Hall (Englewood Cliffs, NJ), 1988, 324 pages.
- Focuses on PC Scheme.
-
- 2. Michael Eisenberg
- "Programming in Scheme"
- Scientific Press (Redwood City, CA), 1988. 304 pages.
-
- 3. Two articles in BYTE Magazine, February 1988, by Abelson and
- Sussman, and Clinger.
-
- Online Introductions to Scheme:
-
- 1. The Ken Dickey article, "The Scheme Programming Language", in
- COMPUTER LANGUAGES magazine, June 1992, is available from the
- Scheme Repository at
- ftp.cs.indiana.edu:/pub/scheme-repository/doc/pubs/intro.txt
- The Revised^4 Report on the Algorithmic Language Scheme is also
- available from the Scheme Repository.
-
- 2. The Info files from the MIT Scheme implementation.
-
- 3. "Introductory Scheme" by Joseph W. Lavinus and James D. Arthur,
- <lavinus@virginia.edu>. Available from the Lisp Utilities
- Repository as ftp.cs.cmu.edu:/user/ai/lang/scheme/doc/intro/
- as scmintro.tgz.
-
- Scheme and Artificial Intelligence:
-
- 1. Wolfgang Kreutzer and Bruce McKenzie
- "Programming for Artificial Intelligence:
- Methods, Tools and Applications"
- Addison-Wesley (Reading, MA), 1990. 682 pages.
- ISBN 0-201-41621-2.
- Discusses Scheme, Prolog, and Smalltalk, gives an overview of
- the history and philosophy of AI, surveys three major
- programming paradigms (procedural, declarative, and
- object-oriented), and metaphors to AI programming.
- Source code from the chapters is available from
- ftp.cs.indiana.edu:/pub/scheme-repository/lit/
- as aibook.tar.Z. Some of the programs will only run under MacScheme.
-
- Scheme-based Computer Science Texts:
-
- 1. Vincent Manis and James Little
- "The Schematics of Computation"
- Prentice-Hall, Inc., 1995. 848 pages
- ISBN 0-13-834284-9 (North America), $41
- ISBN 0-13-433772-7 (International).
-
- For a copy of the publication announcement, see
- ftp.cs.cmu.edu:/user/ai/pubs/books/announce/manis95
-
- General Scheme reference books include:
-
- 1. K. Dybvig
- "The Scheme programming language"
- Prentice Hall, 1987.
- Good reference for Scheme.
-
- Scheme-related periodicals include:
-
- 1. LISP Pointers.
- Published by ACM SIGPLAN six times a year. Volume 1, Number 1
- was April-May 1987.
- Subscriptions: ACM Members $12; ACM Student Members $7; Non-ACM
- members $25. Mail checks payable to the ACM to ACM Inc., PO Box
- 12115, Church Street Station, New York, NY 10249.
-
- 2. LISP and Symbolic Computation, Kluwer Academic Press. Volume 1
- was published in 1989. (jlz@lucid.com is the editor). ISSN 0892-4635.
- Subscriptions: Institutions $169; Individuals $80. Add $8 for
- air mail. Kluwer Academic Publishers, PO Box 322, 3300 AH Dordrecht,
- The Netherlands, or Kluwer Academic Publishers, PO Box 358, Accord
- Station, Hingham, MA 02018-0358.
-
- 3. Proceedings of the biannual ACM Lisp and Functional Programming
- Conference. (First one was in 1980.)
-
- 4. Proceedings of the annual Lisp Users and Vendors Conference.
-
- See also the Scheme Bibliography from the Scheme Repository
- (ftp.cs.indiana.edu:/pub/scheme-repository/) for additional readings.
- A large number of technical reports on Scheme are now available in the
- text section (ftp.cs.indiana.edu:/pub/scheme-repository/txt/).
-
- ----------------------------------------------------------------
- Subject: [1-4] Where can I learn about implementing Scheme interpreters
- and compilers?
-
- There is no single book that is really comprehensive, so you will have
- to combine reading the sources to the various free implementations
- (e.g., Gambit [Feeley] and S48 [Rees]) with bits and pieces of tech
- reports and various books.
-
- Books about Scheme implementation include:
-
- 1. John Allen
- "Anatomy of Lisp"
- McGraw-Hill, 1978. 446 pages. ISBN 0-07-001115-X
-
- 2. Samuel Kamin
- "Programming Languages, An Interpreter-Based Approach"
- Addison-Wesley, Reading, Mass., 1990. ISBN 0-201-06824-9
- Includes sources to several interpreters for Lisp-like
- languages, and a pointer to sources via anonymous ftp.
-
- 3. Sharam Hekmatpour
- "Lisp: A Portable Implementation"
- Prentice Hall, 1985. ISBN 0-13-537490-X.
- Describes a portable implementation of a small dynamic
- Lisp interpreter (including C source code).
-
- 4. Peter Henderson
- "Functional Programming: Application and Implementation"
- Prentice-Hall (Englewood Cliffs, NJ), 1980. 355 pages.
-
- 5. Peter M. Kogge
- "The Architecture of Symbolic Computers"
- McGraw-Hill, 1991. ISBN 0-07-035596-7.
- Includes sections on memory management, the SECD and
- Warren Abstract Machines, and overviews of the various
- Lisp Machine architectures.
-
- 6. Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
- "Essentials of Programming Languages"
- MIT Press, 1992, 536 pages. ISBN 0-262-06145-7, $55.
- Teaches fundamental concepts of programming language
- design by using small interpreters as examples. Covers
- most of the features of Scheme. Includes a discussion
- of parameter passing techniques, object oriented languages,
- and techniques for transforming interpreters to allow
- their implementation in terms of any low-level language.
- Also discusses scanners, parsers, and the derivation of
- a compiler and virtual machine from an interpreter.
- Source files available by anonymous ftp from
- ftp.cs.indiana.edu:/pub/eopl/ (129.79.254.191) or from the
- Scheme Repository.
-
- 7. Peter Lee, editor, "Topics in Advanced Language Implementation",
- The MIT Press, Cambridge, Mass., 1991.
- Articles relevant to the implementation of functional
- programming languages.
-
- 8. Also see the proceedings of the biannual ACM Lisp and Functional
- Programming conferences, the implementation notes for CMU Common Lisp,
- Peter Norvig's book ("Paradigms of AI Programming: Case Studies
- in Common Lisp", Morgan Kaufmann, 1992. 946 pages. ISBN
- 1-55860-191-0), and SICP (Abelson & Sussman).
-
- 9. Christian Queinnec
- "Les Langages Lisp"
- InterEditions (in French), 1994. 500 pages.
- ISBN 2-7296-0549-5, 61-2448-1. (?)
-
- The book covers Lisp, Scheme and other related dialects,
- their interpretation, semantics and compilation.
-
- All of the programs described in the book are available by
- anonymous ftp from
- ftp.inria.fr:/INRIA/Projects/icsla/Books/LiSP94Sep05.tar.gz
- For more information, see the book's URL
- file://ftp.inria.fr/INRIA/Projects/icsla/WWW/LiSP.html
- or contact the author at Christian.Queinnec@inria.fr
-
- Technical reports and journal articles about Scheme implementation include:
-
- Mitchell Wand and Daniel P. Friedman, "Compiling Lambda Expressions
- Using Continuations and Factorizations", Journal of Computer Languages
- 3(1978), 241-263.
-
- Guy Lewis Steele Jr., "Rabbit: A Compiler for Scheme", MIT AI Memo
- 474, Massachusetts Institute of Technology, Cambridge, MA, May 1978.
-
- Guy Lewis Steele Jr., "Compiler Optimization Based on Viewing LAMBDA
- as RENAME + GOTO", in "Artificial Intelligence: An MIT Perspective",
- Patrick Henry Winston and Richard Henry Brown (eds.), MIT Press,
- Cambridge, MA, 1980.
-
- Jonathan A. Rees and Norman I. Adams, "T: A Dialect of Lisp or,
- LAMBDA: The Ultimate Software Tool", Conference Record of the 1982 ACM
- Symposium on Lisp and Functional Programming, 1982, 114-122.
-
- R. Kent Dybvig, "C-Scheme", Computer Science Department Technical
- Report #149 (MS Thesis), Indiana University, Bloomington, IA, 1983.
-
- William Clinger, "The Scheme 311 compiler: An Exercise in Denotational
- Semantics", Conference Record of the 1984 ACM Symposium on Lisp and
- Functional Programming, 1984, 356-364.
-
- Guillermo J. Rozas, "Liar, an Algol-like Compiler for Scheme", S.B.
- Thesis, Department of Electrical Engineering and Computer Science,
- Massachusetts Institute of Technology, January 1984.
-
- David H. Bartley and John C. Jensen, "The Implementation of PC
- Scheme", Proceedings of the 1986 ACM Conference on Lisp and Functional
- Programming, 1986, 86-93.
-
- David Kranz, Richard Kelsey, Jonathan A. Rees, Paul Hudak, James
- Philbin and Norman I. Adams, "Orbit: An Optimizing Compiler for
- Scheme", Proceedings of the SIGPLAN Notices '86 Symposium on Compiler
- Construction, June 1986, 219-233. Published as SIGPLAN Notices 21(7),
- July 1986.
-
- Marc Feeley, "Deux Approches a' L'implantation du Language Scheme",
- M.Sc. Thesis, De'partement d'Informatique et de Recherche
- Ope'rationelle, University of Montreal, May 1986.
-
- R. Kent Dybvig, "Three Implementation Models for Scheme", Department
- of Computer Science Technical Report #87-011 (Ph.D. Dissertation),
- University of North Carolina at Chapel Hill, Chapel Hill, North
- Carolina, April 1987.
-
- William D. Clinger, Anne H. Hartheimer and Eric M. Ost,
- "Implementation Strategies for Continuations", Conference Record of
- the 1988 ACM Conference on Lisp and Functional Programming, August
- 1988, 124-131.
-
- David Kranz, "Orbit: An Optimizing Compiler for Scheme", Computer
- Science Technical report #632 (Ph.D. Dissertation), Yale University,
- 1988.
-
- Joel F. Bartlett, "SCHEME->C a Portable Scheme-to-C Compiler",
- Research Report 89/1, Dec. Western Research Laboratory, Palo Alto, CA,
- January 1989.
-
- Marc Feeley and James S. Miller, "A Parallel Virtual Machine for
- Efficient Scheme Compilation", Proceedings of the 1990 ACM Conference
- on Lisp and Functional Programming, Nice, France, June 1990.
-
- Chris Hanson, "Efficient Stack Allocation for Tail-Recursive
- Languages", Proceedings of the 1990 ACM Conference on Lisp and
- Functional Programming, Nice, France, June 1990.
-
- Robert Hieb, R. Kent Dybvig and Carl Bruggeman, "Representing Control
- in the Presence of First-Class Continuations", Proceedings of the
- SIGPLAN Notices '90 Conference on Programming Language Design and
- Implementation, White Plains, New York, June 1990, 66-77.
-
- Guillermo Rozas, "Taming the Y Operator", Proceedings of the 1992 ACM
- Conference on Lisp and Functional Programming, San Francisco, CA,
- June 1992, 226-234.
-
- Dan Teodosiu, "HARE: An Optimizing Portable Compiler for Scheme", ACM
- Sigplan Notices 26(1), January 1991.
-
- ----------------------------------------------------------------
- Subject: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
-
- R4RS is the Revised^4 Report on the Algorithmic Language Scheme,
- edited by W. Clinger and J. Rees. It appeared in ACM Lisp Pointers IV,
- July-September 1991, and also as MIT AI Memo 848b. It serves as a kind
- of standard for the language. It can be obtained by anonymous ftp at
- the two Scheme Repositories, swiss-ftp.ai.mit.edu and ftp.cs.indiana.edu.
- A HTML version is available as
- ftp://swiss-ftp.ai.mit.edu/pub/scm/HTML/r4rs_toc.html
- or
- http://www.maths.tcd.ie/scrg/scheme/index.html
-
- IEEE P1178 is IEEE Standard 1178-1990, "IEEE Standard for the Scheme
- Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0.
- It is now also an ANSI standard. It may be ordered from IEEE by
- calling 1-800-678-IEEE or 908-981-1393 or writing IEEE Service
- Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855-1331,
- and using order number SH14209 ($28 for IEEE members, $40 others).
-
- ----------------------------------------------------------------
- Subject: [1-8] How do I do object-oriented programming in Scheme?
-
- Some Scheme implementations (for example, MacScheme, Feel, Oaklisp, XScheme,
- and PC-Scheme) include built-in object-oriented extensions.
-
- BOS (Bryan's Object System) is a very small object system for Scheme.
- It is based around generic functions and multiple inheritance. BOS
- provides more or less the same features as Meroon and the Tiny CLOS
- base language. Even though it has not been optimised, it should be
- quite a bit faster than those because it does not include a MOP.
- BOS has been tested under Scheme 48 and SCM, and should run under any
- fairly modern Scheme implementation (especially any which runs SLIB)
- with little or no change. It is available by anonymous ftp from
- ftp.maths.tcd.ie:/pub/bosullvn/misc/bos.tar.gz
- and the CMU AI Repository in
- ftp.cs.cmu.edu:/user/ai/lang/scheme/oop/bos/
- For more information, write to Bryan O'Sullivan <bosullvn@maths.tcd.ie>.
-
- MEROON is a package written in Scheme to provide the basic facilities
- of an object-oriented programming style through three macros:
- define-class, define-generic, and define-method. MEROON offers simple
- inheritance, reflective metaclasses and simple dispatching generic
- functions with support for multimethods. MEROON also offers indexed
- fields subsuming Scheme vectors without inheritance restrictions.
- Meroon runs in Scheme->C, PC-Scheme, Chez Scheme, Elk, Bigloo, SCM
- with SLIB, and MacGambit. MEROON sources and documentation may be
- found in the Scheme Repository as
- ftp.cs.indiana.edu:/pub/scheme-repository/new/meroon.*.tar.Z
- and also from
- ftp.inria.fr:/pub/INRIA/icsla/Programs/MeroonV3*.tar.gz [128.93.1.26]
- The file meroonet*.tar.gz is a toy version of meroon. For more
- information, contact Christian Queinnec <queinnec@polytechnnique.fr>
- or <Christian.Queinnec@inria.fr>.
-
- SCOOPS (Scheme Object Oriented Programming System) is an object system
- for Scheme written by Amitabh Srivastava/Texas Instruments with
- re-writes by Steve Sherin <sherin@linc.cis.upenn.edu>. [Email to this
- address bounced 7/7/93.] This package needs first-class environments.
- It is available from the Scheme Repository as
- /pub/scheme-repository/scm/scoops.sha.
-
- Tiny CLOS is a Scheme implementation of a `kernelized' CLOS, with a
- metaobject protocol. The implementation is even simpler than the
- simple CLOS found in `The Art of the Metaobject Protocol,' weighing in
- at around 850 lines of code, including (some) comments and
- documentation. Tiny CLOS is available by anonymous ftp from
- parcftp.xerox.com:/pub/mops/. Tiny CLOS runs in MIT Scheme 11.74 and
- should run with only minor modifications in other Schemes as well. If
- you want to be added to the mops@parc.xerox.com mailing list
- (technical questions and discussion only), send mail to Gregor Kiczales
- <gregor@parc.xerox.com>.
-
- YASOS (Yet Another Scheme Object System) is fairly functional in style
- and uses delegation. The implementation includes multiple inheritance
- and "send to super" and is much smaller than class-based OO systems.
- See Ken Dickey, "Scheming with Objects", AI Expert 7(10):24-33,
- October 1992. A copy of the article and YASOS code is available from
- the Scheme Repository in pub/scheme-repository/txt/swob.txt. YASOS is also
- included as part of SLIB. For further information, contact Ken Dickey
- <kend@newton.apple.com>.
-
- ----------------------------------------------------------------
- Subject: [1-9] Repositories of Scheme Software
-
- There are several repositories of publicly redistributable and
- public domain Scheme code.
-
- CMU AI Repository, Scheme Section:
-
- The Scheme Section of the CMU Artificial Intelligence Repository
- is accessible by anonymous ftp to
- ftp.cs.cmu.edu:/user/ai/lang/scheme/ [128.2.206.173]
- through the AFS directory
- /afs/cs.cmu.edu/project/ai-repository/ai/lang/scheme/
- or by WWW from the URL
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/repository.html
- and includes more than 200 megabytes of sources and other materials
- of interest to Scheme programmers, including all freely
- distributable implementations and many programs. Unlike the Scheme
- Repository at Indiana University, the entire contents of the CMU AI
- Repository has been keyword indexed to provide convenient browsing
- of the contents.
-
- The repository has standardized on using 'tar' for producing
- archives of files and 'gzip' for compression.
-
- To search the keyword index by mail, send a message to:
- ai+query@cs.cmu.edu
- with one or more lines containing calls to the keys command, such as:
- keys scheme awk
- in the message body. Keywords may be regular expressions and are
- compared with the index in a case-insensitive conjunctive fashion.
- You'll get a response by return mail. Do not include anything else in
- the Subject line of the message or in the message body. For help on
- the query mail server, include:
- help
- instead.
-
- A Mosaic interface to the keyword searching program is in the
- works. We also plan to make the source code (including indexes) to
- this program available, as soon as it is stable.
-
- Most of the Scheme Section of the AI Repository appears on Prime Time
- Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
- includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
- (list) for US$60 plus applicable sales tax and shipping and handling
- charges. Payable through Visa, Mastercard, postal money orders in US
- funds, and checks in US funds drawn on a US bank. For more
- information write to Prime Time Freeware, 370 Altair Way, Suite 150,
- Sunnyvale, CA 94086 USA, call 408-433-9662, 408-433-0727 (fax),
- or send email to ptf@cfcl.com.
-
- Contributions of software and other materials are always welcome but
- must be accompanied by an unambiguous copyright statement that grants
- permission for free use, copying, and distribution -- either a
- declaration by the author that the materials are in the public domain,
- that the materials are subject to the GNU General Public License (cite
- version), or that the materials are subject to copyright, but the
- copyright holder grants permission for free use, copying, and
- distribution. (We will tell you if the copying permissions are too
- restrictive for us to include the materials in the repository.)
- Inclusion of materials in the repository does not modify their
- copyright status in any way. Materials may be placed in:
- ftp.cs.cmu.edu:/user/ai/new/
- When you put anything in this directory, please send mail to
- ai+contrib@cs.cmu.edu
- giving us permission to distribute the files, and state whether
- this permission is just for the AI Repository, or also includes
- publication on the CD-ROM version (Prime Time Freeware for AI).
- We would also appreciate if you would include a 0.doc file for your
- package; see /user/ai/new/package.doc for a template. (If you don't
- have the time to write your own, we can write it for you based on
- the information in your package.)
-
- The Scheme Section of the AI Repository is maintained by Mark Kantrowitz
- <AI.Repository@cs.cmu.edu>.
-
- Scheme Repository at Indiana University:
-
- The Scheme Repository at Indiana University contains a Scheme
- bibliography, copies of the R4RS report and other papers, sample
- Scheme code for a variety of purposes, several utilities, and some
- implementations. The Scheme code includes code for calendar
- calculations, Earley parser, FORMAT for Scheme, a scheme version of
- the Gabriel benchmarks, Marc Feeley's minimal object support for
- Scheme, a Scheme pretty-printer, a Prolog interpreter written in
- Scheme, a random number generator in Scheme, an implementation of
- SCOOPS, code from Abelson and Sussman's SICP book, Aubrey Jaffer's
- IEEE/R4RS compliance test, an implementation of matrices, a Scheme
- implementation of the Common Lisp FORMAT function, a Scheme front end
- to Adobe Illustrator PostScript, and a LALR(1) parser (ZEBU). The
- repository was established by Ozan S. Yigit and is currently
- maintained by David Eby and John Zuckerman. Send administrative
- requests to
- scheme-repository-request@cs.indiana.edu
- The repository is accessible by anonymous ftp at
- ftp.cs.indiana.edu:/pub/scheme-repository/ [129.79.254.191]
- or by WWW to
- http://www.cs.indiana.edu/scheme-repository/home.html
- The repository is mirrored in INRIA, courtesy of Christian Queinnec
- [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:/lang/Scheme/
- and also faui80.informatik.uni-erlangen.de:/pub/scheme/yorku
-
- Other Scheme Collections:
-
- Scheme Implementations may also be found at swiss-ftp.ai.mit.edu:/archive/
- The R4RS report is available in
- swiss-ftp.ai.mit.edu:/archive/scheme-reports/
- or as MIT AI Memo 848b (email publications@ai.mit.edu for more information).
- The swiss-ftp archive includes SCOOPS, CL2Scheme, extend-syntax,
- btree, Gabriel benchmarks, FORMAT for Scheme, etc.
-
- The GI (German Computer Science Society) Scheme Archive contains a
- variety of scheme programs, utilities, code from theses, and other
- materials. It also mirrors the Scheme Repository. It is
- accessible by anonymous ftp to faui80.informatik.uni-erlangen.de
- (login as 'ftp', giving your email address as the password).
- pub/scheme/gi # GI Scheme Archive
- pub/scheme/yorku # Internet Scheme Repository
- Direct questions to scheme@faui80.informatik.uni-erlangen.de.
- The GI Scheme Archive is supported by the German Computer Society Special
- Interest Group on AI programming and sponsored by the Bavarian AI Center
- FORWISS -- Research Institute for Knowledge Based Systems.
-
- ----------------------------------------------------------------
- Subject: [1-10] Publicly Redistributable Scheme Software
-
- SLIB (Standard Scheme Library) is a portable scheme library that
- provides compatibility and utility functions for many of the
- standard scheme implementations, including Chez, ELK 2.1, GAMBIT,
- MITScheme, scheme->C, Scheme48, T3.1, VSCM and Scm4e. It is available by
- anonymous ftp from
- swiss-ftp.ai.mit.edu:/archive/scm/slib2a1.tar.gz
- prep.ai.mit.edu:/pub/gnu/jacal/slib2a1.tar.gz
- ftp.cs.indiana.edu:/pub/scheme-repository/new/slib2a1.tar.gz
- Now includes a FAQ file.
-
- TEST.SCM is an IEEE and R4RS conformance test suite. It is available
- from
- swiss-ftp.ai.mit.edu:/archive/scm/test.scm
- prep.ai.mit.edu:/pub/gnu/jacal/test.scm
- ftp.cs.indiana.edu:/pub/scheme-repository/new/test.scm
-
- PSD (Portable Scheme Debugger) is available by anonymous ftp
- from Tampere University of Technology, Finland,
- ftp.cs.tut.fi:/pub/src/languages/schemes/psd-1.1.tar.Z
- With PSD, you can run a Scheme program in an Emacs buffer, set
- breakpoints, single step evaluation and access and modify the
- program's variables. It works by instrumenting the original source
- code, so it should run with any R4RS compliant Scheme. It has been
- tested with SCM and Elk 1.5, but should work with other Schemes with a
- minimal amount of porting, if at all. Includes documentation and
- user's manual. Written by Pertti Kellom\"aki, pk@cs.tut.fi
- The Lisp Pointers article describing PSD (Lisp Pointers VI(1):15-23,
- January-March 1993) is available as
- http://www.cs.tut.fi/staff/pk/scheme/psd/article/article.html
-
- SCLINT is a lint-like program for Scheme. It checks for consistency of
- indentation, syntax of special forms, and the number of arguments to
- primitive and most user-defined procedures. This is not a full
- implementation, but rather a quick hack. It is used in teaching
- programming at the Tampere University of Technology. It is available
- by anonymous ftp from
- ftp.cs.tut.fi:/pub/src/languages/schemes/sclint-0.9.tar.Z.
- For further information, write to Pertti Kellom\"aki <pk@cs.tut.fi>.
-
- A bibliography of work in functional programming can be obtained by
- anonymous ftp from tamdhu.dcs.st-andrews.ac.uk:/pub/staple/pubs.txt
- (138.251.192.40). It uses a refer-like format with %T for title, %A
- for authors %I for a unique index entry %S for source (possibly a
- reference to another index) %K for keywords and %C for comments.
- Compiled by Tony Davie, <ajtd@honey.st-and.ac.uk>. [Email bounced, 7/7/93.]
-
- Scheme Utilities -- brokaw.lcs.mit.edu:/pub/scmutils.tar 18.30.0.33
- [This collection seems to no longer be located on brokaw -- does
- anybody know the current location?]
-
- A collection of Scheme implementations of data structures and
- algorithms is available by anonymous ftp from
- ftp.cs.tut.fi:/pub/src/languages/schemes/
- as the file scheme-algorithms.tar. For more information, contact
- Pertti Kellom\"aki <pk@cs.tut.fi>.
-
- 6.001. The User's Manual, example code, and problem sets from MIT's
- course "Structure and Interpretation of Computer Programs" are
- available by anonymous ftp from swiss-ftp.ai.mit.edu:/archive/6.001/
- [18.23.0.16].
-
- Steele's Constraint System. Chris Hanson's implementation of Steele's
- constraint system is available for anonymous ftp from
- swiss-ftp.ai.mit.edu:/archive/cph/constraint.tar [18.23.0.16]
- ftp.cs.indiana.edu:/pub/scheme-repository/new/constraint.tar.Z
- A compressed version is also stored there. The software is source code
- for MIT Scheme. It should run in release 7.1.3. Most of the MIT Scheme
- dependencies could be eliminated, but it also uses the following
- procedures which aren't in standard Scheme: error, bkpt, macros,
- dynamic binding, and string output ports. The code corresponds pretty
- closely to Guy Steele's PhD thesis implementation, which you can
- obtain in printed form from the MIT AI Lab publications office as
- AI-TR-595 for $15.00 (email publications@ai.mit.edu for more
- information). For more information, send email to Chris Hanson
- <cph@martigny.ai.mit.edu>.
-
- JACAL is a symbolic mathematics system for the simplification and
- manipulation of equations and single and multiple valued algebraic
- expressions constructed of numbers, variables, radicals, and algebraic
- functions, differential, and holonomic functions. In addition, vectors
- and matrices of the above objects are included. JACAL is written in
- Scheme and requires SLIB. JACAL source is available via anonymous FTP
- from
- swiss-ftp.ai.mit.edu:/archive/scm/jacal1a4.tar.Z,
- prep.ai.mit.edu:/pub/gnu/jacal/jacal1a4.tar.Z, and
- ftp.cs.indiana.edu:/pub/scheme-repository/new/jacal1a4.tar.Z
- Contact jaffer@altdorf.ai.mit.edu for more information.
-
- Zebu 0.9 is an LALR(1) parser generator for Scheme written by
- William M. Wells III. It lives in the Scheme Repository
- ftp.cs.indiana.edu:/pub/scheme-repository/scm/
- and works with PC-Scheme from TI and MIT C-Scheme 6.2 (but not with
- anything after 7.0).
-
- Thomas is a compiler for the Dylan programming language. The Thomas
- system is written in Scheme and runs under MIT's CScheme, DEC's
- Scheme->C, and Marc Feeley's Gambit. It can run on a wide range of
- machines including the Macintosh, PC compatibles, Vax, MIPS, Alpha,
- and 680x0. Thomas generates IEEE compatible Scheme code. Thomas is
- available to the public by anonymous ftp at
- crl.dec.com:/pub/DEC/Thomas
- gatekeeper.pa.dec.com:/pub/DEC/Thomas
- swiss-ftp.ai.mit.edu:/archive/Thomas
- For more information on Thomas and Dylan, see part 4 of the Lisp FAQ.
-
- MATCH is a pattern matching macro package for Scheme. Pattern
- matching allows complicated control decisions based on data structure
- to be expressed in a concise manner. This document describes several
- pattern matching macros for Scheme, and an associated mechanism for
- defining new forms of structured data. This macro package works with
- any Scheme that supports defmacro (which is obtainable by loading
- SLIB), such as Chez Scheme (release 4 or greater). MATCH is available
- by anonymous ftp from titan.cs.rice.edu:/public/wright/match.tar.Z
- [128.42.1.30] and includes the macro source code and documentation. A
- copy should be available from the Scheme Repository shortly. For
- further information, write to Andrew Wright, <wright@cs.rice.edu>.
-
- Soft Scheme provides the benefits of static typing for dynamically
- typed Scheme. Like a static type checker, a soft type checker infers
- types for variables and expressions. But rather than reject programs
- containing untypable fragments, a soft type checker inserts explicit
- run-time checks to transform untypable programs to typable form.
- These run-time checks indicate potential program errors, enabling
- programmers to detect errors prior to program execution. Soft type
- checking minimizes the number of run-time checks in the compiled code,
- enabling dynamically typed languages to attain the efficiency of
- statically typed languages like ML. Soft Scheme is available by
- anonymous ftp from
- titan.cs.rice.edu:public/wright/softscheme.tar.Z [128.42.1.30]
- For more information, write to Andrew Wright <wright@cs.rice.edu>.
-
- ChezSybase is a Chez Scheme interface to the Sybase database.
- It uses the Chez Scheme foreign function interface to provide a
- high-level Scheme interface to the Sybase db-lib (the API to the
- Sybase database). Most of the db-lib calls and datatypes are
- supported, with the possible exception of spotty support for text and
- image data, and there is no analog to the datetime datatype. It is
- available by anonymous ftp from
- ftp.cs.cmu.edu:/user/ai/lang/scheme/code/io/chez_syb/
- For more information, write to Karl O. Pinc <kop@acm.org>.
-
- ----------------------------------------------------------------
- Subject: [1-11] Formatting code in LaTeX
-
- SLaTeX is a R4RS-compliant Scheme program that allows you to write
- program code "as is" in your LaTeX or TeX source. It is particularly
- geared to the programming languages Scheme and Common Lisp, and has
- been tested in Chez Scheme, Common Lisp, MIT C Scheme, Elk, Scheme->C,
- SCM and UMB Scheme on Unix; and MIT C Scheme and SCM on MSDOS. The
- formatting of the code includes assigning appropriate fonts to the
- various tokens in the code (keywords, variables, constants, data), at
- the same time retaining the proper indentation when going to the
- non-monospace (non-typewriter) provided by TeX. SLaTeX comes with two
- databases that recognize the standard keywords/variables/constants of
- Scheme and Common Lisp respectively. These can be modified by the
- user using easy TeX commands. In addition, the user can inform SLaTeX
- to typeset arbitrary identifiers as specially suited TeX expressions
- (i.e., beyond just fonting them). The code-typesetting program SLaTeX
- is available by anonymous ftp from
- cs.rice.edu:/public/dorai/slatex23.tar.gz
- Send bug reports to dorai@cs.rice.edu.
-
- SchemeWEB provides simple support for literate programming in Lisp.
- SchemeWEB version 2.0 is a Unix filter that allows you to generate
- both Lisp and LaTeX code from one source file. The generated LaTeX
- code formats Lisp programs in typewriter font obeying the spacing in
- the source file. Comments can include arbitrary LaTeX commands.
- SchemeWEB was originally developed for the Scheme dialect of Lisp, but
- it can easily be used with most other dialects. Version 2.0 is
- available in the Scheme Repository as
- ftp.cs.indiana.edu:/pub/scheme-repository/new/schemeweb.sh
- or in the Comprehensive TeX Archive Network (CTAN) in the directory
- ftp.shsu.edu:/tex-archive/web/schemeweb
-
- The Literate Programming FAQ lists a number of alternatives, both
- language-independent and Scheme-specific. The Literate Programming FAQ
- is posted once a quarter to the comp.literate.programming newsgroup
- and is available by anonymous ftp from rtfm.mit.edu. A copy may also be
- requested by sending an email message to fileserv@shsu.edu
- sendme litprog.faq
- in the body of the message.
-
- ----------------------------------------------------------------
- Subject: [1-12] Where can I get an implementation of Prolog in Scheme?
-
- Prolog in Scheme is a collection of macros that expand syntax for
- clauses, elations, and so on. It is written in Scheme and has support
- for delayed goals and interval arithmetic. It is known to run in Chez
- Scheme and in Elk, and is intended to be portable to other Scheme
- implementations. It relies on continuations, and so is not easily
- ported to Common Lisp. Available from the University of Calgary by
- anonymous ftp from
- ftp.cpsc.ucalgary.ca:/pub/projects/prolog1.2/prolog12.tar.Z
- Questions and comments may be addressed to Alan Dewar
- <dewar@cpsc.ucalgary.ca> or John Cleary <jcleary@waikato.ac.nz>.
-
- Schelog is an embedding of Prolog in Scheme. It represents Prolog
- goals as procedures in Scheme, and includes macros to simulate a
- Prolog-style syntax for clauses, relations and queries. The embedding
- permits the user to combine Prolog and Scheme code freely, in the same
- s-expression, if desired. Documentation and examples are included.
- Schelog should run in any R4RS Scheme, has been tested in SCM and Chez
- Scheme, and will run in any Scheme implementation that supports SLIB (see
- entry in [1-10] above). Schelog (version 2) is available by anonymous
- ftp from titan.cs.rice.edu:/public/dorai/schelog2.tar.Z. Its use of
- higher-order continuations is probably a major obstacle to porting it
- to Common Lisp. For more information, please contact the author Dorai
- Sitaram <dorai@cs.rice.edu>.
-
- ----------------------------------------------------------------
- Subject: [1-13] What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
-
- Glossary of acronyms:
- CAR Originally meant "Contents of Address portion of Register",
- which is what CAR actually did on the IBM 704.
- CDR Originally meant "Contents of Decrement portion of
- Register", which is what CDR actually did
- on the IBM 704. Pronounced "Cudder".
- ANSI American National Standards Institute
- SICP Abelson and Sussman's book "Structure and
- Interpretation of Computer Programs".
- EOPL Essentials of Programming Languages
- SCOOPS An experimental object-oriented programming
- language for Scheme.
- R3RS Revised^3 Report on the Algorithmic Language Scheme.
- R4RS Revised^4 Report on the Algorithmic Language Scheme.
-
- ----------------------------------------------------------------
- Subject: [1-14] Why is there no EVAL in Scheme?
-
- The answer to this question is based on information provided by
- Guillermo J. Rozas and Aubrey Jaffer.
-
- There are three major positions in the Scheme community regarding EVAL:
-
- 1. No EVAL: EVAL is antithetical to a Pascal-like (compiler based,
- externally statically linked) implementation for Scheme, such as
- some people have or wish to see.
-
- 2. Single Argument: There is a single distinguished top-level
- environment, and EVAL always evaluates its argument there.
- (This is the approach taken in Common Lisp, where EVAL evaluates
- its argument in the current dynamic environment and in a null
- lexical environment.)
-
- 3. Two Arguments: There are multiple environments in which
- the user might want to evaluate expressions, so EVAL should take
- two arguments, the second being an environment. In particular,
- in some systems with first-class environments, there is no
- a-priori single distinguished top-level environment, and
- defaulting the environment does not fit those dialects well.
-
- Not every dialect of Scheme has EVAL. Most do, but some with different
- names and arguments. Jaffer's SLIB package uses LOAD as defined in
- R4RS to define EVAL for those implementations that don't support EVAL
- (e.g., by writing the code out to a file and then loading it).
- Rozas's compromise proposal for EVAL was accepted for R5RS, but it is
- unclear whether there will ever be a R5RS.
-
- ----------------------------------------------------------------
- Subject: [1-15] World-Wide Web (WWW) Resources
-
- The World Wide Web (WWW) is a hypermedia document that spans the
- Internet. It uses the http (HyperText Transfer Protocol) for the
- light-weight exchange of files over the Internet. NCSA Mosaic is a
- World Wide Web browser developed at the National Center for
- Supercomputing Applications (NCSA).
-
- Mosaic's popularity derives, in part, from its ability to communicate
- using more traditional Internet protocols like FTP, Gopher, WAIS, and
- NNTP, in addition to http. Mosaic can display text, hypertext links,
- and inlined graphics directly. When Mosaic encounters a file type it
- can't handle internally, such as Postscript documents, mpeg movies,
- sound files, and JPEG images, it uses an external viewer (or player)
- like Ghostscript to handle the file. Mosaic also includes facilities
- for exploring the Internet. In other words, Mosaic is an multimedia
- interface to the Internet.
-
- The hypertext documents viewed with Mosaic are written in HTML
- (HyperText Markup Language), which is a subset of SGML (Standard
- Generalized Markup Language). All that is needed is just a few more
- improvements, such as the ability to format tables and mathematics,
- and a WYSIWYG editor, for HTML to greatly facilitate electronic
- journals and other publications.
-
- NCSA Mosaic for the X Window System is available by anonymous ftp from
- ftp.ncsa.uiuc.edu:/Mosaic/
- as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
- Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to
- mosaic-x@ncsa.uiuc.edu (X-Windows version), mosaic-mac@ncsa.uiuc.edu
- (Macintosh), and mosaic-win@ncsa.uiuc.edu (Microsoft Windows).
-
- A simple HTML version of the Scheme FAQ (this FAQ) is available as
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
-
- The Scheme home page at MIT is
- http://www-swiss.ai.mit.edu/scheme-home.html
- It includes a nifty little form that lets you execute small examples
- of Scheme code.
-
- The Scheme Underground web page is
- http://www.ai.mit.edu/projects/su/su.html
-
- ----------------------------------------------------------------
- Subject: [1-16] Why is Scheme called 'Scheme'?
-
- According to Steele and Gabriel's "The Evolution of Lisp" paper,
- Scheme was originally called Schemer, in the tradition of the AI
- languages Planner and Conniver. But the ITS operating system had a
- 6-character limitation of file names, so the names were shortened to
- PLNR, CNVR, and SCHEME. Eventually the truncated name Scheme stuck.
-
- ----------------------------------------------------------------
- ;;; *EOF*
-
- Archive-name: scheme-faq/part2
- Last-Modified: Mon Jan 16 20:06:10 1995 by Mark Kantrowitz
- Version: 1.22
- Maintainer: Mark Kantrowitz and Barry Margolin <ai+lisp-faq@cs.cmu.edu>
- URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/scheme/top.html
- Size: 42598 bytes, 750 lines
-
- ;;; ****************************************************************
- ;;; Answers to Frequently Asked Questions about Scheme *************
- ;;; ****************************************************************
- ;;; Written by Mark Kantrowitz and Barry Margolin
- ;;; scheme_2.faq
-
- This post contains part 2 of the Scheme FAQ.
-
- If you think of questions that are appropriate for this FAQ, or would
- like to improve an answer, please send email to us at ai+lisp-faq@cs.cmu.edu.
-
- Topics Covered (Part 2):
- [2-1] Free Scheme implementations.
- [2-2] Commercial Scheme implementations.
- [2-3] What Scheme-related discussion groups and mailing lists exist?
-
- Search for \[#\] to get to question number # quickly.
-
- ----------------------------------------------------------------
- Subject: [2-1] Free Scheme implementations.
-
- Repositories of Scheme source code are described in the answer to
- question [1-9].
-
- Remember, when ftping compressed or compacted files (.Z, .z, .arc, .fit,
- etc.) to use binary mode for retrieving the files.
-
- Files that end with a .z suffix were compressed with the patent-free
- gzip (no relation to zip). Source for gzip is available from:
- prep.ai.mit.edu:/pub/gnu/
- as the files gzip-1.2.3.shar, gzip-1.2.3.tar,or gzip-1.2.3.msdos.exe.
-
- Repositories of Scheme implementations:
-
- Many free Scheme implementations are available from swiss-ftp.ai.mit.edu
- [18.43.0.246]. See also the Scheme Repository described below.
-
- The Scheme Repository contains a Scheme bibliography, copies of the
- R4RS report, sample Scheme code for a variety of purposes, several
- utilities, and most free implementations. (Implementations of Scheme
- available from the repository include elk, gambit, scm, fools, rabbit,
- s48, scheme84, scheme88, pseudo, xscheme, umb-scheme, siod, vscm, and
- pixiescheme.) The repository was established by Ozan S. Yigit and
- is currently maintained by David Eby and John Zuckerman
- <scheme-repository-request@cs.indiana.edu>. The repository is
- accessible by anonymous ftp at
- ftp.cs.indiana.edu:/pub/scheme-repository/ [129.79.254.191]
- The repository is mirrored in INRIA, courtesy of Christian Queinnec
- [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:/lang/Scheme.
- (See also [1-9].)
-
- Scheme implementations:
-
- BIGLOO is a Scheme interpreter and compiler. It conforms to the
- IEEE-Scheme standard (IEEE P1178) with some extensions, such as
- regular expression parsing (RGC), a lexical analyzer generator, a full
- foreign function interface, and a pattern matching compiler. Bigloo
- can also compile modules written in Caml (an ML dialect), letting you
- mix Scheme, ML, and C. Object-oriented programming is provided by
- Meroon v3. The main goal of Bigloo is to deliver small and fast stand
- alone applications. Bigloo produces ANSI C and hence should be easy
- to port. It runs on Sparc (1, 2, 10), SONY-NEWS (MIPS R3000), IRIS
- Indigo (MIPS R3000), Sun 3/60, DecStation 3100, PC-486 (linux), and
- HP-PA (730). It is available by anonymous ftp from
- ftp.inria.fr:/INRIA/Projects/icsla/Implementations/ [192.93.2.54]
- as the files bigloo1.6.tar.gz and camloo0.0.tar.gz.
- For further information, send email to Manuel.Serrano@inria.fr, or
- write to Manuel Serrano (equipe ICSLA, Bat 8), INRIA-Rocquencourt,
- BP 105, 78153, Le Chesnay CEDEX, FRANCE, or call 39-63-57-32.
-
- Elk (Extension Language Kit) is a Scheme interpreter designed to be
- used as a general extension language for applications written in C or
- C++. Elk can also be used as a stand-alone implementation of the
- Scheme programming language. It is mostly R4RS and P1178 conformant
- (with the exception of the number system and a few minor details). It
- has interfaces to Xlib, Xt, and the Athena and OSF/Motif widget sets.
- It includes dynamic incremental linking of C object files, an optional
- foreign function interface, and a generational garbage collector (by
- Marco Scheibe <mykee@cs.tu-berlin.de>). It can also dump an image of a
- fully customized application into a new executable file. Elk is
- available by anonymous ftp from
- tub.cs.tu-berlin.de:/pub/elk/
- It is also available from the Scheme Repository in
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/
- and in the X contrib directory on ftp.x.org (formerly export.lcs.mit.edu).
- Runs on Unix, SunOs, and Ultrix based platforms, including VAX,
- Sun3, Sun4 (Sparc), 680x0, 80386, MIPS, IBM RT, IBM RS/6000,
- HP9000/700, SGI, and Sony NEWS. Implemented by Oliver Laumann
- <net@cs.tu-berlin.de> and Carsten Bormann <cabo@cs.tu-berlin.de>.
-
- FDU Scheme is a R3RS implementation of Scheme for the Prime
- 50-series under Primos. It is available by anonymous ftp from
- fdumad.fdu.edu [132.238.1.1] (username "anonymous", password
- <RETURN>). Attach to the Scheme subdirectory (cd '*>scheme') and
- transfer all files in it and its subdirectories using file type
- binary. For more information, contact Peter Falley,
- <falley@fdumad.fdu.edu>.
-
- Fools' Lisp is a small Scheme interpreter that is R4RS conformant, and
- is available by anonymous ftp from
- scam.berkeley.edu:/pub/src/local/fools.1.3.2.tar.Z [128.32.138.1]
- Fools' Lisp runs on Sun3 and Sun4 (SunOs), DecStation 3100s, Vax
- (Ultrix), Sequent, and Apollo. Implemented by Jonathan Lee
- <jonathan@scam.berkeley.edu>.
-
- Gambit is an optimizing Scheme compiler/system. It conforms to the
- IEEE-Scheme standard (IEEE P1178) and the Revised^4 Report on Scheme
- (R4RS). The system supports the whole numeric tower (i.e. integer,
- rational, real and complex numbers). It also has several extensions to
- the standards including: weak pairs, string ports, property lists,
- futures, pretty printer, debugger, compiler and multitasking. Gambit
- runs on M680x0 based machines only (including Sun3, Apollo,
- HP9000/3xx, BBN GP1000 multiprocessor, Amiga, NeXT, and the Apple
- Macintosh). The latest version for UNIX based machines (including the
- Macintosh running A/UX) is release 1.9. The latest version for the Mac
- running the normal System/Finder is MacGambit release 1.9.1. The
- distribution contains the interpreter and optimizing native code
- compiler and all the sources required to build the system (the sources
- for MacGambit are for THINK-C 5.0). MacGambit's specific features
- include: a Scheme interface to several Toolbox routines (mostly
- QuickDraw), a drawing window for simple graphics, an online help
- system containing R4RS and a Scheme oriented editor with an emacs
- compatibility mode. Gambit Scheme is available by anonymous ftp from
- ftp.iro.umontreal.ca:/pub/parallele/gambit/ [132.204.32.22]
- Versions 1.7, 1.7.1, 1.8.2, 1.9.1 and 2.0 may be found in this
- directory. Version 2.0 is in the files gambit20.tar.Z (Unix source),
- macgambit-2.0-interpreter.hqx (MacGambit interpreter),
- macgambit-2.0-sources1.hqx (sources needed to build the interpreter
- using Think-C 5.0), and macgambit-2.0-sources2.hqx (Scheme source
- files for runtime and compiler, and DEC's Thomas interpreter).
- Copies may also be found in the Scheme Repository on
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/, but the most recent version
- will always be available from ftp.iro.umontreal.ca. MacGambit may also be
- obtained from the directory
- /afs/umich.edu/group/itd/archive/mac/development/languages/
- if your site runs the Andrew File System, or by anonymous ftp from
- mac.archive.umich.edu. For more information about Gambit, send email
- to gambit@trex.iro.umontreal.ca. Gambit Scheme was written by Marc
- Feeley <feeley@iro.umontreal.ca>. Gambit for UNIX and MacGambit are
- copyright 1992, Universite de Montreal. The programs may be
- distributed to others as long as they are not sold or transferred for
- compensation (other than a reasonable duplication fee).
-
- HELP (a lazy Scheme) is available by anonymous ftp from
- sumex-aim.stanford.edu:/info-mac/lang/lazy-scheme.hqx. Written by
- Thomas Schiex (schiex@cert.fr, schiex@irit.fr). Help is a complete and
- efficient Scheme-like functional lazy Lisp interpreter. It works only
- on 68020 (or more) based Macintoshes. It has a 'friendly' interface
- (parenthesis matcher, auto-indent), uses a full call-by-need semantics
- and includes many examples, including a symbolic compiler for the
- 680x0. Efficiency is good and lazyness is fully parametrizable (you
- may turn Help into a strict Scheme-like language if you like). French
- AND English updated docs are included in Word4 and plain text formats.
-
- LIBSCHEME is a C library implementing Scheme as described in R4RS. It
- is easily integrated into a C program as a command interpreter or
- extension language, and is easily extended in C with new primitive
- types, primitve functions and syntax. It should be portable to most
- machines with an ANSI C compiler. It is available by anonymous ftp
- from
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/
- For more information, write to Brent Benson
- <Brent.Benson@mail.csd.harris.com>.
-
- MIT Scheme (aka C-Scheme), is available free by anonymous FTP from
- swiss-ftp.ai.mit.edu:/archive/scheme-7.3 [18.23.0.16]
- Version 7.3 is a beta version and runs on DEC Alpha, DECStation
- (MIPS), HP 9000 300/400/700, IBM RS-6000, Intel i386/i486 (DOS, NT,
- Windows 3.1, or Linux), NeXT (NeXTOS 2 or 3), SGI (MIPS), Sony NEWS
- (MIPS), Sun3 (SunOS 4.1) and Sun4 (SunOS 4.1). Bugs should be
- reported to bug-cscheme@martigny.ai.mit.edu (for the DOS version, send
- bug reports to bug-cscheme-dos@martigny.ai.mit.edu). MIT Scheme
- includes Edwin (Scheme's Emacs-like editor) and Liar (the Scheme
- compiler). Does not have a convenient foreign function interface yet.
- FTP distribution includes MIT C-Scheme Reference and User manuals, as
- well as the Revised^4 Report on Scheme. Discussion occurs on the
- newsgroup comp.lang.scheme.c (gatewayed to the mailing list
- info-cscheme@zurich.ai.mit.edu). For DOS floppy distribution requests
- (includes printed copies of manuals), send $95.00 (payable in U.S.
- funds to "Scheme Distribution") to cover costs of distribution to
- Scheme Distribution, c/o Prof. Hal Abelson, 545 Technology Sq. rm 410,
- Cambridge MA 02139, USA.
- |
- On the NeXT, MIT Scheme is available as part of the Schematik
- package, which provides an editor/front-end user interface,
- graphics, and "robotics" support for Lego and the like. Schematik is
- free and is available for anonymous ftp from
- ftp.gac.edu:/pub/next/scheme/
- Europeans can get it more locally from
- ftp.informatik.uni-muenchen.de:/pub/next/ProgLang/
- start with Schematik-1.1.5.1.README . Schematik is also apparently
- included on NeXT's "Educational Software Sampler" CD-ROM.
- |
- A preliminary unofficial port of C-Scheme to the Linux is available
- from artemide.dei.unipd.it:/linux/scheme-7.2/. Contact the author
- Matteo Frigo <Matteo.Frigo@dei.unipd.it> for more information.
-
- Oaklisp is an seamless integration of Scheme with an object-oriented
- substrate. Available by anonymous ftp from
- f.gp.cs.cmu.edu:/usr/bap/oak/ftpable/ [128.2.250.164]
- or from
- ftp.cs.cmu.edu:/afs/cs.cmu.edu/user/bap/oak/ftpable/
- and includes reference and implementation manuals. Written by Barak
- Pearlmutter <bap@cse.ogi.edu> and Kevin Lang <kevin@research.nj.nec.com>.
-
- PC-Scheme (aka PCScheme, PC Scheme) is an implementation of Scheme
- originally written by Texas Instruments. TI made a version of the
- source code freely distributable in 1987. TI stopped supporting
- the code, and some researchers at the University of Geneva produced
- a cleaned-up version (see PCS/Geneva below). On July 13, 1992, Ibuki
- announced that it had purchased the rights to PC Scheme from TI.
- Please see the Ibuki PC Scheme entry in [2-2]. If you want a
- high-quality and supported implementation of PC Scheme, buy the
- Ibuki implementation. It is certainly inexpensive enough. Now TI
- PC-Scheme is available by anonymous ftp from
- swiss-ftp.ai.mit.edu:/archive/pc-scheme/
- and runs on MS-DOS 286/386 IBM PCs and compatibles. Version 3.3
- should run on the 486, but no guarantees. Version 3.3 is the last
- free version. TI PC-Scheme conforms to the Revised^3 Report on Scheme.
- It includes an optimizing compiler, an emacs-like editor, inspector,
- debugger, performance testing, foreign function interface, window
- system and an object-oriented subsystem. It also supports the dialect
- used in Abelson and Sussman's SICP.
-
- PCS/Geneva is a cleaned-up version of Texas Instrument's PC Scheme
- developed at the University of Geneva. The main extensions to PC
- Scheme are 486 support, BGI graphics, LIM-EMS pagination support, line
- editing, mouse support, assembly-level interfacing, and several
- powerful Scheme-oriented editors. (TI's PC Scheme gives users full
- Revised^3 support along with many primitives for DOS, Graphics and
- Text Windows. A powerful built-in optimizing compiler produces fast
- code.) PCS/Geneva 4.02PL1 has been tested on XTs, ATs, AT386s and
- AT486s under various DOS and OS/2 versions. It even runs on
- Hewlett-Packard's HP95LX. It also runs on Suns with a DOS emulator.
- PCS/Geneva is available free by anonymous ftp from
- cui.unige.ch:/PUBLIC/pcs/ [129.194.70.1]
- as the files pcscheme.doc, pcscheme.exe, pcscheme.fil and pcscheme.taz
- or by email (uuencoded) from schemege@cui.unige.ch. If you ftp
- PCS/Geneva, please send mail to schemege@cui.unige.ch; the authors
- like to know their public and will inform you when a new release is
- available. This is also the email address for bug reports or if you
- need any kind of help. This product may be distributed freely and
- used without restrictions except for military purposes.
- (PCS/Geneva was developed by Larry Bartholdi <lbartho@cui.unige.ch>
- and Marc Vuilleumier <mvuilleu@cui.unige.ch>.)
-
- Pixie Scheme for the Macintosh is a nearly complete implementation of
- R3RS available by anonymous ftp from
- rascal.ics.utexas.edu:/misc/mac/programming/
- Pixie.Goodies.SIT.bin
- Pixie.NoFPP.world.SIT.bin
- Pixie.world.SIT.bin
- PixieScheme.NoFPP.SIT.bin ; for macs without floating-point coprocessor
- PixieScheme.SIT.bin ; for macs with FPP
- Pixie_Scheme_Help.SIT.bin
- Pixie_intro
- Written by Jay Reynolds Freeman <freeman@MasPar.COM>, P. O. Box 60628,
- Palo Alto, CA, 94306-0628. A copy may also be obtained from
- /afs/umich.edu/group/itd/archive/mac/development/languages
- as the file pixiescheme.cpt.hqx if your site runs the Andrew File System,
- or by anonymous ftp from mac.archive.umich.edu.
-
- Scheme->C is an R4RS compliant Scheme system that is centered around
- a compiler that compiles Scheme to C. Besides the base language,
- the system includes "expansion passing style" macros, a foreign function
- call capability, records, weak pointers, 3 X11 interfaces, call/cc, and a
- generational, conservative, copying garbage collector. The result is a
- system that is portable, efficient, and able to build applications that
- contain a mix of compiled and interpreted Scheme, and compiled code
- from C, C++ and other languages. The current release of Scheme->C runs
- on the following systems: Digital Alpha AXP systems with OSF/1, MIPS
- based DECstations, VAXen with ULTRIX, MIPS based SGI systems, PC's
- running Microsoft Windows 3.1, Apple Macintosh's running system 7.1,
- HP 9000/300, HP 9000/700, Sony News, Harris Nighthawk and other m88k
- systems, linux, and Sun SPARC. Earlier releases also run on Sun3,
- DNx500, DN1000, 386's running Unix, DNx500, and DN1000 systems. The
- software is available for anonymous ftp from
- gatekeeper.dec.com:/pub/DEC/Scheme-to-C/ [16.1.0.2]
- There are three interfaces to X11, all written in Scheme, available
- from gatekeeper. The first is a complete set of stubs to Xlib included
- in the base system. The second is an alternative to Xlib called SCIX,
- found in
- gatekeeper.dec.com:/pub/X11/contrib/
- The third, ezd, allows programs to easily
- produce interactive, structured graphics and is found in
- gatekeeper.dec.com:/pub/DEC/ezd/
- Those without ftp access can also obtain Scheme->C and ezd from the
- Prime Time Freeware CD, Vol. 1, No. 2. Additional information is
- available from the author at Digital Equipment Corporation's Western
- Research Lab: Joel Bartlett, bartlett@decwrl.dec.com.
-
- Scheme 48 is a Scheme implementation based on a virtual machine
- architecture. Scheme 48 is designed to be straightforward, flexible,
- reliable, and fast. It should be easily portable to 32-bit
- byte-addressed machines that have POSIX and ANSI C support.
- In addition to the usual Scheme built-in procedures and a development
- environment, library software includes support for hygienic macros (as
- described in the Revised^4 Scheme report), multitasking, records,
- exception handling, hash tables, arrays, weak pointers, and FORMAT.
- Scheme 48 implements and exploits an experimental module system
- loosely derived from Standard ML and Scheme Xerox. The development
- environment supports interactive changes to modules and interfaces.
- A beta release of Scheme 48 is available by anonymous ftp from
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/scheme48-0.36.tar.Z
- swiss-ftp.ai.mit.edu:/archive/s48/scheme48-0.36.tar.gz
- ftp.cs.cmu.edu:/user/ai/lang/scheme/impl/s48/scheme48.tar.gz
- For more information, contact Richard Kelsey and Jonathan Rees
- at <scheme-48-request@martigny.ai.mit.edu>.
-
- SCM, free by anonymous ftp from
- swiss-ftp.ai.mit.edu:/archive/scm/
- prep.ai.mit.edu:/pub/gnu/jacal/
- ftp.cs.indiana.edu:/pub/scheme-repository/new/
- ftp.maths.tcd.ie:/pub/bosullvn/jacal/
- Current version 4e1. Runs on Amiga, Atari-ST, MacOS, MS-DOS, OS/2,
- NOS/VE, VMS, Unix and similar systems. SCM conforms to the Revised^4
- Report on the Algorithmic Language Scheme and the IEEE P1178
- specification. Scm is written in C. ASCII and EBCDIC are supported.
- Written by Aubrey Jaffer.
- To receive an IBM PC floppy disk with the source files and MSDOS
- and i386 executables send $99 to Aubrey Jaffer, 84 Pleasant Street,
- Wakefield MA 01880, <jaffer@zurich.ai.mit.edu>.
- SLIB (Standard Scheme Library) is a portable Scheme library
- which is intended to provide compatability and utility functions for
- all standard Scheme implementations, including SCM, Chez, Elk,
- Gambit, MacScheme, MITScheme, scheme->C, Scheme48, T3.1, and VSCM, and is
- available as the file slib2a0.tar.gz. Written by Aubrey Jaffer.
- JACAL is a symbolic math system written in Scheme, and is
- available as the file jacal1a4.tar.gz.
- SCMCONFIG contains additional files for the SCM distribution to build
- SCM on Unix machines using GNU autoconf.
- SLIB-PSD is a portable debugger for Scheme (requires emacs editor).
- TURTLSCM is a turtle graphics package which works with SCM on MSDOS
- or X11 machines. Written by Mkinen Sami <sjm@cc.tut.fi> and Jarkko
- Leppanen <jtl@cc.tut.fi>, it is available as the file turtlegr.tar.Z.
- (Also available from modeemi.cs.tut.fi:/pub/scm/ as turtlegr.tar.gz,
- along with an already-compiled MSDOS binary of scm with turtlegraphics
- and slib in scm4c0_b.zip.)
- XSCM is an X Windows interface to Xlib and the Motif and
- OpenLook toolkits for the SCM interpreter. It requires scm4a10 or
- later. It should be available at any archive of alt.sources, or on
- swiss-ftp, prep and indiana as the file xscm1.05.tar.Z.
- Contact campbell@redsox.bsw.com for more information.
- SMG-SCM is a package that adds VMS SMG screen management routines
- to SCM. It is available from swiss-ftp, prep and indiana as the file
- sgm-scm2a1.zip. (A VMS version of Unzip is available by anonymous
- FTP from ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.) This file
- contains the source code, documentation, and example code. Send
- comments and bugs to T. Kurt Bond, <tkb@mtnet2.wvnet.edu> (preferred)
- or <Kurt.Bond@launchpad.unc.edu>.
- WB is a disk based, sorted associative array C library (database). These
- associative arrays consist of variable length (less that 256 bytes)
- keys and values. WB comes with an interface to SCM. Basic
- operations are creation, destruction, opening and closing of
- diskfiles and arrays, insertion, deletion, retrieval, successor, and
- predecessor (with respect to dictionary order of keys). Functional
- application of find-next, deletion, and modification over a range of
- consecutive key values is supported. Multiple associative arrays
- can be stored in one disk file. Simultaneous access to multiple
- disk files is supported. A structure checker, garbage collector
- are included. A repair program and ram-disk type file (for
- temporary structures) are in developement. The current WB
- implementation has a file size limit of 2^32 * block size (default
- 2048) = 2^43 bytes (8796 Gbytes). WB does its own memory and disk
- management. WB is available on swiss-ftp, prep, and indiana as wb1a1.tar.z.
-
- A Windows version of Scheme called WinScm is forthcoming from
- Vincent Manis of Langara College of BC, Canada.
-
- Hobbit is a Scheme-to-C compiler that works with the SCM Scheme
- interpreter. It treats SCM as a C library and integrates compiled
- functions into SCM as new primitives. Hobbit release 2 works with SCM
- release 4b4. Future releases of SCM and Hobbit will be coordinated.
- Hobbit imposes strong restrictions on the higher-order features of
- Scheme. For example, it does not support continuations. The main aim
- of hobbit is to produce maximally fast C programs which would retain
- most of the original Scheme program structure, making the output C
- program readable and modifiable. Hobbit is written in Scheme and is
- able to self-compile. Hobbit can be obtained via anonymous ftp from
- swiss-ftp.ai.mit.edu:/archive/scm/hobbit2.tar.Z
- prep.ai.mit.edu:/pub/gnu/jacal/hobbit2.tar.Z
- ftp.cs.indiana.edu:/pub/scheme-repository/new/hobbit2.tar.Z
- For further information, contact the author, Tanel Tammet, at
- <tammet@cs.chalmers.se> or at Tanel Tammet, Department of Computer
- Sciences, Chalmers University of Technology, S-41296 Go"teborg, Sweden.
-
- Similix is a Self-Applicable Partial Evaluator for a Subset of Scheme.
- Written by Anders Bondorf, Olivier Danvy, and Jesper J{\o}rgensen. It
- is available by anonymous ftp from
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/
- as similix.tar.Z or from ftp.diku.dk:/pub/diku/dists/Similix.tar.Z. For
- more information, contact Anders Bondorf, DIKU, Department of Computer
- Science, University of Copenhagen, Universitetsparken 1, DK-2100
- Copenhagen, Denmark, or send email to anders@diku.dk. Similix conforms
- to the IEEE and R4RS standards, but also runs under R3RS Scheme. It
- runs in SCM, Chez Scheme and T3.1.
-
- SIOD (Scheme in One Defun), free by anonymous ftp from
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/siod-v3.0-shar
- ftp.std.com:/pub/gjc/siod-3.0-shar
- or in any comp.sources.unix archive. Runs on VAX/VMS, VAX UNIX, Sun3,
- Sun4, Amiga, Macintosh, MIPS, Cray, Windows NT/WIN32. Small scheme
- implementation in C arranged as a set of subroutines that can be
- called from any main program for the purpose of introducing an
- interpreted extension language. Compiles to ~42K bytes of
- executable. Lisp calls C and C calls Lisp transparently. Version
- 3.0 includes support for manipulation of Oracle and Digital RDB
- relational databases (SQL interface).
- Written by George Carrette <gjc@paradigm.com> or <gjc@world.std.com>.
-
- STk is a R4RS Scheme interpreter which can access the Tk graphical
- package. All of the commands defined by the Tk toolkit are available
- to the STk interpreter, and Tk variables are reflected back into
- Scheme as Scheme variables. Callback is expressed in Scheme. Includes
- a CLOS-like OO extension called STklos, which provides multiple
- inheritance, generic functions, multi methods, and a true meta-object
- protocol. A set of classes have been defined to manipulate Tk
- commands (menu, buttons, scales, canvas, canvas items) as Scheme
- objects. STk runs on Sparc (SUNOS 4.1.x), Dec 5xxx (Ultrix 4.2), SGI
- (Irix 4.05, 5.1.1), DEC Alpha, and Linux 1.0. STk is available by
- anonymous ftp from
- kaolin.unice.fr:/pub/STk-2.1.tar.gz [193.48.229.225]
- Please send bug reports, comments, and questions to Erick Gallesio,
- <eg@unice.fr>, Universite de Nice - Sophia Antipolis, ESSI - I3S
- Route des colles, BP 145, 06903 Sophia Antipolis CEDEX, FRANCE,
- phone (33) 92-96-51-53, fax (33) 92-96-51-55.
- To subscribe to the mailing list, send a message with
- subscribe
- in the Subject field to stk-request@kaolin.unice.fr.
-
- T3.1 is a Scheme-like language developed at Yale. Available by
- anonymous ftp from
- ftp.ai.mit.edu:/pub/systems/t3.1/
- T may be obtained in Europe from
- nic.funet.fi:/pub/unix/languages/scheme/t3.1/
- ftp.diku.dk:/pub/t3.1/
- Runs on DecStations (MIPS processor) and SGI Iris, Sun4
- (SPARC), Sun3, Vax/Unix. Includes a copy of the online version of the
- T manual and release notes for T3.0 and T3.1. All implementations
- include a foreign function (C) interface. To be informed of fixes, new
- releases, etc., send your email address to t-project@cs.yale.edu. Bug
- reports should go to t3-bugs@cs.yale.edu. A multiprocessing version of
- T (for Encore Multimax) is available from masala.lcs.mit.edu:/pub/mult.
- [The sources were last modified November 22, 1991.]
-
- UMB Scheme is a R4RS Scheme available by anonymous ftp from
- ftp.cs.umb.edu:/pub/scheme/umb-scheme-2.10.tar.Z and also in the Scheme
- Repository. It includes a simple editor, debugger, Written by William
- Campbell, University of Massachusetts at Boston, bill@cs.umb.edu.
-
- VSCM is a R4RS Scheme available by anonymous ftp from the Scheme Repository,
- ftp.cs.indiana.edu:/pub/scheme-repository/imp/vscmV0r2.tar.Z [130.63.9.66]
- Written by Matthias Blume, <blume@cs.princeton.edu>. The
- implementation is based on a virtual machine design with heavy support
- for most of the sophisticated features of Scheme. The virtual machine
- is written in ANSI-C to aid in its portability. The bytecode compiler
- is written in Scheme itself. Documentation of VSCM is also available as
- http://www.cs.princeton.edu/grad/Matthias_Blume/vscm.html
-
- XScheme is available free by anonymous ftp from
- ftp.uu.net:/MSDOS/languages/X-scheme
- ftp.uu.net:/amiga-sources/xscheme.20.zoo
- It includes an object system and is R3RS compliant.
- It was written by David Michael Betz, 167 Villa Avenue #11, Los Gatos,
- CA 95032, 408-354-9303 (H), 408-862-6325 (W), dbetz@apple.com.
- XScheme is discussed in the newsgroup comp.lang.lisp.x. It may also
- be found in the Scheme Repository.
-
- Free Scheme Implementations implemented in Lisp:
-
- Peter Norvig's book "Paradigms of AI Programming" has a chapters about
- Scheme interpreters and compilers, both written in Common Lisp. The
- software from the book is available by anonymous ftp from
- unix.sri.com:/pub/norvig and on disk in Macintosh or DOS format from
- the publisher, Morgan Kaufmann. For more information, contact: Morgan
- Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260, San Mateo CA 94403,
- or call Toll free tel: (800) 745-7323; FAX: (415) 578-0672
-
- PseudoScheme is available free by anonymous ftp from
- ftp.cs.cornell.edu:/pub/jar/pseudo-2-9.tar.gz
- swiss-ftp.ai.mit.edu:/archive/pseudo/pseudo-2-8.tar.Z
- It is Scheme implemented on top of Common Lisp, and runs in Lucid,
- Symbolics CL, VAX Lisp under VMS, and Explorer CL. It should be
- easy to port to other Lisps. It was written by Jonathan Rees
- (jar@altdorf.ai.mit.edu, jar@cs.cornell.edu). Send mail to
- info-clscheme-request@mc.lcs.mit.edu to be put on a mailing list
- for announcements. Conforms to R4RS except for lacking a correct
- implementation of call/cc. It works by running the Scheme code
- through a preprocessor, which generates Common Lisp code.
-
- Scheme84 is in the public domain, and available by mail from Indiana
- University. It runs on the VAX in Franz Lisp under either VMS or BSD Unix.
- To receive a copy, send a tape and return postage to: Scheme84
- Distribution, Nancy Garrett, c/o Dan Friedman, Department of Computer
- Science, Indiana University, Bloomington, Indiana. Call 1-812-335-9770
- or send mail to nlg@indiana.edu for more information. It will also
- run in Jeff Dalton's port of Franz Lisp to Net/Free/386BSD on 386-like
- machines. (See the Lisp FAQ for information on Franz Lisp.)
- Scheme84 is available by anonymous FTP from
- ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/scheme84.tar.gz
-
- Scheme88 is available by anonymous ftp from rice.edu:/public/scheme88.sh
- and also from the Scheme Repository.
-
- ----------------------------------------------------------------
- Subject: [2-2] Commercial Scheme implementations.
-
- Chez Scheme:
-
- Chez Scheme Version 5 is a high-performance implementation of Scheme
- conforming to the IEEE/ANSI Scheme Standard and the R4RS. Chez Scheme
- provides an incremental optimizing compiler, complete run-time library,
- generation-based garbage collector, interactive inspector, and C
- interface. New Version 5 features include improved performance,
- lexical macros, multiple values, shared incremental heaps, guardians
- and weak pairs, and generic ports. Version 5 is available for Sparc
- SunOS and Solaris, Alpha OSF/1, SGI IRIX 5.X, Motorola mc88000 SVR3/4,
- 80386 NeXT Mach, BSDI BSD/386, and Linux. More information on Chez
- Scheme can be obtained via anomymous ftp from
- ftp.cs.indiana.edu:/pub/scheme/chezscheme/
- Site license fees start at $9000 ($4500 academic). We are not able to
- handle personal sales at this time. For detailed pricing and ordering
- information contact sales@cadence.bloomington.in.us or Kent Dybvig at
- dyb@cs.indiana.edu. Cadence Research Systems, 3814 Devonshire South,
- Bloomington, IN 47408-9698, USA. Phone 812-333-9269, fax 812-332-4688.
-
- EdScheme, WinScheme Editor, 3DScheme, and "The Schemer's Guide":
-
- Schemers Inc. publishes software and textbooks that promote the
- use and advancement of Scheme in the educational and commercial
- sectors. Their products include:
-
- + The WinScheme Editor v1.02. This is a Windows full-featured MDI
- (Multiple Document Interface) editor for Scheme programs. It knows
- about Scheme syntax and contains comprehensive code formatting
- facilities. It provides a channel for sending programs direct to
- Windows-based Scheme interpreters, allowing users to develop, test,
- and edit Scheme code from within the editor. The WinScheme Editor
- also includes a substantial set of context-sensitive online
- documentation for the programming environment and the Scheme
- language. The WinScheme Editor requires MS Windows 3.1 or later with
- 2MB RAM and 3MB hard disk space. The retail price for the WinScheme
- Editor is $89.95.
-
- + EdScheme for Windows v4.2. This is an R4RS-compatible Windows-based
- Scheme interpreter. It is seamlessly integrated into the WinScheme
- Editor and provides a fully customizable transcript window that
- journals Scheme sessions and serves as a command window. EdScheme
- can be customized by specifying a load-path, a start-up file of
- library procedures, and setting its level of Windows multi-tasking
- tolerance. Currently in beta release, EdScheme for Windows will
- include a turtle graphics interface, primitives for creating windows
- and menus, rational/complex number arithmetic, and a debugging
- facility in the final release. EdScheme for Windows requires MS
- Windows 3.1 or later with 4MB RAM and 4MB of hard disk space. The
- retail price for EdScheme for Windows is $129.95. (Note: The
- WinScheme Editor is integrated into EdScheme and does not need to be
- ordered separately.)
-
- + 3DScheme for Windows v1.0. This is a Windows-based R4RS Scheme
- interpreter incorporating over 450 geometrical Scheme primitives that
- access Spatial Technology Inc's ACIS (R) Geometric Modeling Kernel,
- the de facto industry standard in 3D modeling. The 3D modeling
- features include:
- - construction of solid bodies from blocks, cylinders, cone
- frustums, spheres, and toruses.
- - construction of wire-bodies from straight, circular,
- elliptical, Bezier, and spline edges.
- - construction of solids by extruding planar faces or
- profiles along a vector or revolving about an axis.
- - application of rigid transformations, uniform scaling, and
- boolean operations.
- - intersect, trim, fillet, and chain edges.
- - simultaneous views of solids from several different angles.
- - dynamically accepted event-driven input for picking,
- rubber banding, or dragging.
- - rendering of solids using flat or Gouraud technology and
- configurable refinements, materials, texture spaces, and
- render lights.
- - saving and loading collections of solid and wire entities
- from disk in .sat format.
- - outputting rendered images as high resolution bitmaps or
- Postscript files.
- As with EdScheme for Windows, 3DScheme is seamlessly integrated with
- the WinScheme Editor. 3DScheme also ships with the "Getting Started
- with Scheme" book. 3DScheme requires MS Windows 3.1 or later with
- 8MB RAM and 16MB of hard disk space. A 3DScheme demo program is
- available from the Scheme repository in the "promo" directory or may
- be requested from Schemers Inc. 3DScheme for Windows retails for
- $495. (Note: The WinScheme Editor is integrated into 3DScheme and
- does not need to be ordered separately.)
-
- + EdScheme for Macintosh v4.0. This is an R4RS-compatible
- Macintosh-based Scheme interpreter. The programming environment
- takes advantage of the capabilities of the Macintosh computer. Its
- user interface includes a full-featured integrated editor, with
- special capabilities such as parenthesis-matching, program
- formatting, file indexing, and template editing. In addition,
- customized transcript and debugging windows featuring colored and
- styled text are provided. The interpreter features a powerful and
- comprehensive turtle graphics interface, unlimited precision "bignum"
- integral and rational/complex number arithmetic, file handling
- facilities, and language extensions using macros and transformers.
- EdScheme for Macintosh runs from floppy or hard drive and requires a
- Mac Plus or later, System 6.0.4 or better, and 1MB RAM. EdScheme for
- Macintosh retails for $59.95.
-
- + EdScheme for DOS v3.4. This is a DOS-based Scheme interpreter that
- incorporates a large subset of R4RS. EdScheme for DOS features an
- integrated editor with automatic parenthesis-matching, a turtle
- graphics interface, debugging facility, comprehensive file-handling
- capabilities, macros and more. It runs from floppy or hard drive and
- requires MS DOS 3.3 or later and 512KB RAM. EdScheme for DOS retails
- for $49.95.
-
- + "The Schemer's Guide" by Iain Ferguson with Edward Martin and Burt
- Kaufman. Foreword by Daniel Friedman. The Schemer's Guide presents
- the elements of modern computer programming in an easy-to-follow and
- entertaining manner. The book introduces students to the Scheme
- programming language, guiding them through such concepts as
- functional programming, recursion, data structures, higher order
- functions, delayed evaluation, and object-oriented programming. The
- Schemer's Guide concludes with a significant game-playing project
- involving artificial intelligence. The book strikes a good balance
- between theory and practice, while nurturing good programming
- practices. The Schemer's Guide has a proven track record of several
- years use in teaching the art of Scheme programming to high school
- students and college undergraduates. A comprehensive teacher's guide
- and an additional set of resource materials including worksheets,
- quizzes, projects, and exams are available to instructors using this
- text. The retail price of the book is $35.95. (A Spanish
- translation of "The Schemer's Guide" will be available by August 1995.)
-
- + "Getting Started with Scheme: Using the ACIS 3D Toolkit" by Edward
- Martin. Co-published with Spatial Technology Inc., this 250-page
- book includes all you need to know about Scheme, mathematics, and
- solid modeling to become a skilled 3D modeler using 3DScheme. The
- retail price for the book is $35.95, but is included free with
- 3DScheme.
-
- For more information about these products, write to Schemers Inc.,
- 2136 NE 68th Street, Suite 401, Fort Lauderdale, FL 33308, call
- 305-776-7376, or fax 305-776-6174. You can also send email to
- 71020.1774@compuserve.com. Schemers' European distributor, Lambda
- Publications, is reachable by phone at 44-793-695296 or by email on
- 100015.1465@compuserve.com.
-
- Ibuki PC Scheme:
-
- Ibuki PC Scheme 5.01 is a modern, up-to-date implementation of TI
- PC-Scheme (see [2-1]). Ibuki purchased the rights to TI PC Scheme
- on July 13, 1992. Ibuki PC Scheme runs under DOS on all IBM
- compatible PCs, including 486s, and can use up to 4mb of extended
- memory. It will also run under Windows 3.1. For more information,
- contact IBUKI, 340 Second Street, PO Box 1627, Los Altos, CA 94022,
- phone (415) 961-4996, fax (415) 961-8016, email Richar Weyhrauch
- <rww@ibuki.com>. Ibuki has a special pricing program for schools
- teaching Scheme in courses.
-
- MacScheme:
-
- MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and
- includes an editor, debugger and object system. MacScheme costs $125
- (includes compiler) and Scheme Express costs $70 (interpreter only). It
- requires 1mb RAM. A development environment (MacScheme+Toolsmith) costs
- $495. Conforms to the Revised^4 Report on the Algorithmic Language Scheme.
- MacScheme+Toolsmith includes support for menus, windows, and interfaces to
- the Macintosh Toolbox, and can create small standalone Macintosh
- executables. Implemented by Will Clinger, John Ulrich, Liz Heller and Eric
- Ost. Write to: Lightship Software, PO Box 1636, Beaverton, OR 97075, or
- call (503) 292-8765. They're moving to California. The temporary phone
- number is 415-940-4008 (Liz Heller). The new phone number will be
- 415-694-7799, or fax bug reports to 415-694-7705 or 800-441-5015.
- MacScheme is distributed by Academic Computing Specialists (ACS),
- 2015 East 3300 South, Salt Lake City, UT 84109-2630, 1-800-531-3227
- or 1-800-552-1601 (801-484-3923), fax 801-467-2200. These products
- may also be purchased from Academic Computing Specialists, PO Box
- 711, Dewey, AZ 86327, tel 602-632-7176, fax 602-632-7631.
-
- ----------------------------------------------------------------
- Subject: [2-3] What Scheme-related discussion groups and mailing lists exist?
-
- Before posting to any discussion group, please read the rest
- of this FAQ, to make sure your question isn't already answered.
-
- See the Lisp FAQ for a list of Lisp-related discussion groups and
- mailing lists. We list here only those newsgroups and mailing lists
- directly associated with Scheme.
-
- Newsgroups:
-
- comp.lang.scheme General Scheme-related discussion.
- This newsgroup is available in digest
- fromat as part of the Scheme Digest
- scheme@mc.lcs.mit.edu.
- comp.lang.scheme.c Discussion of C-Scheme, a scheme dialect
- more commonly known as "MIT Scheme".
- This newsgroup is gatewayed to the
- info-cscheme@zurich.ai.mit.edu mailing list.
- comp.lang.lisp.x Discussion of XLISP, a dialect of Lisp, and XScheme.
- comp.lang.dylan Discussion of Dylan (see [4-6]), Apple's
- new Scheme-like programming language. Gatewayed to
- info-dylan@cambridge.apple.com.
-
- We list several mailing lists below. In general, to be added to
- a mailing list, send mail to the "-request" version of the address.
- This avoids flooding the mailing list with annoying and trivial
- administrative requests. [To subscribe to info-mcl, info-dylan, or
- other mailing lists based at cambridge.apple.com, send a message to
- majordomo@cambridge.apple.com with "subscribe <list_name>" in the
- message body. Likewise use "unsubscribe <list_name>" to cancel your
- subscription and "help" to get help.]
-
-
- General Scheme Mailing Lists:
-
- scheme@mc.lcs.mit.edu Discussion of Scheme. Gatewayed to
- the comp.lang.scheme newsgroup.
- scheme@ai.mit.edu General discussion about Scheme.
-
-
- Particular Flavors of Scheme:
-
- info-cscheme@altdorf.ai.mit.edu,
- info-cscheme@zurich.ai.mit.edu C-Scheme. Gatewayed to the
- comp.lang.scheme.c newsgroup.
-
- t-project@cs.yale.edu T, a dialect of Scheme.
-
- info-clscheme@mc.lcs.mit.edu PseudoScheme
-
- info-dylan@cambridge.apple.com Dylan (not really scheme, but)
-
- ----------------------------------------------------------------
- ;;; *EOF*
-